Skip to main content

SNMP Exporter

Der SNMP Exporter ist eine essenzielle Komponente im Prometheus-Ökosystem, um Metriken von Netzwerkgeräten (Switches, Router, Drucker) via Simple Network Management Protocol (SNMP) zu sammeln. Dieser Guide führt dich durch die manuelle Installation auf einem Linux-System.


1. Architektur-Konzept: Wie SNMP Exporter funktioniert

Im Gegensatz zu anderen Exportern fragt Prometheus den SNMP Exporter an, der wiederum eine spezifische Abfrage an das Zielgerät sendet.


2. Download und Installation der Binärdateien

Zuerst laden wir die gewünschte Version (hier v0.19.0) herunter und verschieben die ausführbaren Dateien in das Systemverzeichnis.

# 1. Download des Archivs
wget https://github.com/prometheus/snmp_exporter/releases/download/v0.19.0/snmp_exporter-0.19.0.linux-amd64.tar.gz

# 2. Entpacken
tar xzf snmp_exporter-0.19.0.linux-amd64.tar.gz

# 3. Dateien verschieben
cd snmp_exporter-0.19.0.linux-amd64
sudo cp ./snmp_exporter /usr/local/bin/snmp_exporter
sudo cp ./snmp.yml /usr/local/bin/snmp.yml

3. System-Integration und Service-Konfiguration

Damit der Exporter automatisch beim Systemstart lädt, erstellen wir einen dedizierten System-User und eine Systemd-Service-Datei.

Schritt 1: System-Benutzer erstellen

sudo useradd --system prometheus

Schritt 2: Systemd Service-Datei anlegen

Erstelle die Datei mit sudo nano /etc/systemd/system/snmp-exporter.service und füge folgenden Inhalt ein:

[Unit]
Description=Prometheus SNMP Exporter Service
After=network.target

[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/bin/snmp_exporter --config.file="/usr/local/bin/snmp.yml"

[Install]
WantedBy=multi-user.target

Schritt 3: Service starten

sudo systemctl daemon-reload
sudo systemctl enable snmp-exporter
sudo systemctl start snmp-exporter
sudo systemctl status snmp-exporter

4. Integration in Prometheus (prometheus.yml)

Damit Prometheus weiß, dass es den Exporter abfragen soll, muss die Konfigurationsdatei angepasst werden. SNMP nutzt "Relabeling", da das Zielgerät (target) als Parameter an den Exporter übergeben wird.

Öffne die Konfiguration: sudo nano /etc/prometheus/prometheus.yml und füge am Ende hinzu:

  - job_name: snmp
metrics_path: /snmp
params:
module: [if_mib] # Das SNMP-Modul, das verwendet werden soll
static_configs:
- targets:
- 127.0.0.1 # IP des zu überwachenden Netzwerkgeräts
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9116 # Adresse des SNMP Exporters

5. Validierung und Abschluss

Bevor du den Prometheus-Dienst neu startest, solltest du die Syntax der Konfigurationsdatei prüfen.

  1. Konfiguration prüfen:
    promtool check config /etc/prometheus/prometheus.yml
  2. Prometheus neu starten:
    sudo systemctl restart prometheus
    sudo systemctl status prometheus
  3. Web-Interface prüfen: Besuche http://[Deine-IP]:9116 im Browser, um das UI des SNMP Exporters zu sehen.

6. Terminal-Wissen: Verwendete Tools

  • wget: Ein Tool zum nicht-interaktiven Herunterladen von Dateien aus dem Internet.
  • tar xzf: Entpackt (x) ein komprimiertes (z) Dateiarchiv (f).
  • systemctl daemon-reload: Informiert das System über neue oder geänderte Service-Dateien, damit diese geladen werden können.
  • relabel_configs: Ein mächtiges Prometheus-Feature, um Label während des Scrapes dynamisch zu verändern oder umzuschreiben.